Edge detection is a basic but important procedure in computer graphics and image processing. It is used to detect the boundaries of an object in a digital image. Hence a reliable edge detection algorithm is much needed for any high level object recognition or similar image processing tasks. Almost all edge detection methods are essentially differential operators. They compute the intensity difference along a certain direction within a small neighborhood surrounding a pixel, and declare that an edge is found if the absolute difference exceeds a certain threshold. In many image processing/object recognition tasks, one side of the edge boundary is usually the background lighting while the other side is an object to be detected. When the background light intensity varies, it will affect the absolute difference. If the absolute difference is below the threshold, then the valid edge of the object will not be detected. If it is above the threshold, noisy signals will be detected as edges, creating many false edges. Hence it is technically challenging to develop a reliable edge detection algorithm under non-uniform background lighting condition.
One approach is to neutralize the background intensity variation by, for example, obtaining a profile of the non-uniform background intensity and then performing some sort of ‘equalizer’ operation to counter the non-uniformity effect. However, when the background light intensity varies over time and/or is not under the control of the image processing system, such approach would require re-calibrating the background intensity periodically. This is clearly not desirable.